package busco

// 玩家扮演的角色。
// 玩家可通过创建选择角色界面，创建属于自己的角色。
// @schema_export --ident=schema --json --config=主体
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体_角色
type B主体_角色 struct {
	B主体

	// @alias 头像
	T头像 string
	// 用于搜索或者生成数值表时排序使用
	// @alias 序号
	X序号 int
	// 主控单位，代表玩家角色在游戏中的单位
	// 场景：通常用于暗黑3，激战2等游戏
	// 注意：如果是卡牌类游戏，不需要设置主控单位，通过[初始奖励]实现角色获得初始卡片或单位
	// @alias 主控单位
	Z主控单位 string `link:"卡片"`
	// 角色的最高等级
	// 与角色的编号一起生成角色等级数值表
	// @alias 最高等级
	Z最高等级 int

	// 如果物品背包已满，奖励将放置在缓冲卡包
	// @alias 缓冲卡包
	H缓冲卡包 string `link:"卡包"`
	// 放置奖励的物品，通常不设限制
	// @alias 物品卡包
	W物品卡包 string `link:"卡包"`
	// 放置奖励的材料，如果未设置，掉落到【物品卡包】
	// @alias 材料卡包
	C材料卡包 string `link:"卡包"`
	// 放置奖励的单位，必须设置
	// @alias 单位卡包
	S单位卡包 string `link:"卡包"`
	// 放置奖励的技能，如果未设置，掉落到【物品卡包】
	// @alias 技能卡包
	J技能卡包 string `link:"卡包"`
	// @alias 创建执行
	C创建执行 string `link:"执行"`
	// @alias 主线任务
	Z主线任务 string `link:"任务"`
	// 只能挂载主体为角色的功能集
	// @alias 功能集
	G功能集 map[string]string `link:"功能"`
}

// @schema_go --EnumToString=true
// @alias 角色属性
type J角色属性 int

const (
	J角色属性_未知 J角色属性 = iota
)
